#include "bsp_ui_start.h"

static lv_obj_t *parent_obj;                        /* 定义父对象 */
static lv_obj_t *child_obj;                         /* 定义子对象 */

// 添加方向控制变量，用于演示不同方向
static lcd_orientation_t current_orientation = LCD_ORIENTATION_PORTRAIT;

static void obj_event_cb(lv_event_t *e)
{
    lv_obj_t * target = lv_event_get_target(e);                 /* 获取事件触发源 */

    if (target == parent_obj)                                   /* 判断触发源：是不是父对象？ */
    {
        lv_obj_align(parent_obj, LV_ALIGN_CENTER, 0, 0);        /* 重新设置父对象的位置：居中 */
    }
    else if (target == child_obj)                               /* 判断触发源：是不是子对象？ */
    {
        lv_obj_align(child_obj, LV_ALIGN_RIGHT_MID, 100, 0);    /* 重新设置子对象的位置：右侧居中，再向X轴偏移100 */
    }
}

// 添加方向切换函数，用于演示四个方向
void switch_orientation(void)
{
    // 循环切换四个方向
    switch (current_orientation) {
        case LCD_ORIENTATION_PORTRAIT:
            current_orientation = LCD_ORIENTATION_LANDSCAPE;
            break;
        case LCD_ORIENTATION_LANDSCAPE:
            current_orientation = LCD_ORIENTATION_PORTRAIT_INVERTED;
            break;
        case LCD_ORIENTATION_PORTRAIT_INVERTED:
            current_orientation = LCD_ORIENTATION_LANDSCAPE_INVERTED;
            break;
        case LCD_ORIENTATION_LANDSCAPE_INVERTED:
            current_orientation = LCD_ORIENTATION_PORTRAIT;
            break;
    }
    
    // 应用新方向
    lv_port_disp_rotation(current_orientation);
}

void lvgl_ui_start(void)
{
    // 设置为横屏模式作为示例
    // lv_port_disp_rotation(LCD_ORIENTATION_LANDSCAPE);
    
    /* 动态获取屏幕大小 */
    lv_coord_t scr_act_width = lv_obj_get_width(lv_scr_act());   /* 获取活动屏幕的宽度 */
    lv_coord_t scr_act_height = lv_obj_get_height(lv_scr_act()); /* 获取活动屏幕的高度 */

    // btn1 = lv_btn_create(lv_scr_act());
    // lv_obj_set_size(btn1,scr_act_width*1/4,scr_act_height*1/4);
    // lv_obj_align(btn1, LV_ALIGN_TOP_LEFT, 0, 0);
    // lv_obj_add_event_cb(btn1,click_label_para_set,LV_EVENT_PRESSED,NULL);

    // btn2 = lv_btn_create(lv_scr_act());
    // lv_obj_set_size(btn2,scr_act_width*1/4,scr_act_height*1/4);
    // lv_obj_align(btn2, LV_ALIGN_TOP_RIGHT, 0, 0);
    // lv_obj_add_event_cb(btn2,click_label_para_set,LV_EVENT_PRESSED,NULL);

    // btn3 = lv_btn_create(lv_scr_act());
    // lv_obj_set_size(btn3,scr_act_width*1/4,scr_act_height*1/4);
    // lv_obj_align(btn3, LV_ALIGN_BOTTOM_LEFT, 0, 0);
    // lv_obj_add_event_cb(btn3,click_label_para_set,LV_EVENT_PRESSED,NULL);

    // btn4 = lv_btn_create(lv_scr_act());
    // lv_obj_set_size(btn4,scr_act_width*1/4,scr_act_height*1/4);
    // lv_obj_align(btn4, LV_ALIGN_BOTTOM_RIGHT, 0, 0);
    // lv_obj_add_event_cb(btn4,click_label_para_set,LV_EVENT_PRESSED,NULL);

    // label = lv_label_create(lv_scr_act());
    // lv_obj_set_size(label,scr_act_width*1/4,scr_act_height*1/4);
    // lv_obj_align(label, LV_ALIGN_CENTER, 0, 0);
    // lv_label_set_text(label,"123");
    /* 父对象 */
    parent_obj = lv_obj_create(lv_scr_act());                                   /* 创建父对象 */
    lv_obj_set_size(parent_obj, scr_act_width * 2/3, scr_act_height * 2/3);     /* 设置父对象的大小 */
    lv_obj_align(parent_obj, LV_ALIGN_TOP_LEFT, 0, 0);                           /* 设置父对象的位置：顶部居中 */
    lv_obj_set_style_bg_color(parent_obj, lv_color_hex(0x99ccff), 0);           /* 设置父对象的背景色：浅蓝色 */
    lv_obj_add_event_cb(parent_obj, obj_event_cb, LV_EVENT_LONG_PRESSED, NULL); /* 为父对象添加事件：长按触发 */
    // lv_obj_add_event_cb(parent_obj, switch_orientation, LV_EVENT_CLICKED, NULL);/* 为父对象添加事件：点击切换方向 */

    /* 子对象 */
    child_obj = lv_obj_create(parent_obj);                                      /* 创建子对象 */
    lv_obj_set_size(child_obj, scr_act_width / 3, scr_act_height / 3);          /* 设置子对象的大小 */
    lv_obj_align(child_obj, LV_ALIGN_CENTER, 0, 0);                             /* 设置子对象的位置：居中 */
    lv_obj_set_style_bg_color(child_obj, lv_color_hex(0x003366), 0);            /* 设置子对象的背景色：深蓝色 */
    lv_obj_add_event_cb(child_obj, obj_event_cb, LV_EVENT_CLICKED, NULL);       /* 为子对象添加事件：按下释放后触发 */
    // lv_obj_add_event_cb(child_obj, switch_orientation, LV_EVENT_LONG_PRESSED, NULL); /* 为子对象添加事件：长按切换方向 */
    
}












